package com.sinosoft.ptas.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.sinosoft.ptas.entity.TargetsOfImplPhaseEntity;
/**
 * 实施期目标接口持久化定义
 * @author lianWuJun
 * @time   2017年2月18日 下午6:57:32
 */
public interface TargetsOfImplPhaseMapper {

	/**
	 * 创建实施期目标
	 * @param targetsOfImplPhaseEntity
	 * @return true或false
	 */
	public boolean createTargetsOfImplPhase(TargetsOfImplPhaseEntity targetsOfImplPhaseEntity);
	
	/**
	 * 根据实施期目标编号查询实施期目标
	 * @param id
	 * @return 实施期目标类型实体
	 */
	public TargetsOfImplPhaseEntity retrieveTargetsOfImplPhase(String id);
	
	/**
	 * 根据规財司实施期目标编号查询规財司实施期目标
	 * @param id
	 * @return 实施期目标类型实体
	 */
	public TargetsOfImplPhaseEntity retrieveGcsTargetsOfImplPhaseById(String id);
	
	/**
	 * 根据实施期目标类的属性查询实施期目标（根据reportId查询实施期目标集合的查询）
	 * @param targetsOfImplPhaseEntity
	 * @return 实施期目标类型集合
	 */
	public List<TargetsOfImplPhaseEntity> retrieveTargetsOfImplPhases(TargetsOfImplPhaseEntity targetsOfImplPhaseEntity);
	
	/**
	 * 更新实施期目标 （也是根据实施期目标的id来进行更新操作）
	 * @param targetsOfImplPhaseEntity
	 * @return true或false
	 */
	public boolean updateTargetsOfImplPhase(TargetsOfImplPhaseEntity targetsOfImplPhaseEntity);
	
	/**
	 * 更新规財司实施期目标（也是根据实施期目标的id来进行更新操作）
	 * @param targetsOfImplPhaseEntity
	 * @return true或false
	 */
	public boolean updateTargetsOfImplPhaseForGcs(TargetsOfImplPhaseEntity targetsOfImplPhaseEntity);
	
	/**
	 * 删除实施期目标(根据前台传来的id来删除)
	 * @param id 实施期目标id
	 * @return true或false
	 */
	public boolean deleteTargetsOfImplPhase(String id);
	
	/**
	 * 根据申报id查询实施期目标
	 * @param reportId
	 * @return
	 */
	public List<TargetsOfImplPhaseEntity> retrieveTargetsPhaseByReportId(
			@Param("reportId")String reportId);
	
	/**
	 * 根据组织机构id和行政区划编码查询出司局下面所挂省的实施期目标
	 * @param devisionCode 行政区划代码
	 * @param oid 组织机构代码
	 * @return List<TargetsOfImplPhaseEntity> 实施期目标列表
	 */
	public List<TargetsOfImplPhaseEntity> retrieveTargetsPhaseByDivisionCodeAndOrgId(@Param("divisionCode")String divisionCode,@Param("oid")String oid);
	
	/**
	 * 批量更新年度目标 
	 * @param targetsOfImplPhaseList
	 */
	public void updateTargetsOfImplPhaseList(List<TargetsOfImplPhaseEntity> targetsOfImplPhaseList);
	
	/**
	 * 根据排序查询实施期目标
	 * @param reportId
	 * @return 实施期目标实体
	 */
	public  List<TargetsOfImplPhaseEntity>retrieveByReportIdForSort(String reportId);
	
	/**
	 * 批量添加实施期目标
	 * @param trgetsOfImplPhaseEntitys
	 */
	public void  createTargetsOfImplPhases( List<TargetsOfImplPhaseEntity> trgetsOfImplPhaseEntitys);
	
	/**
	 * 根据申报id查询实施期默认目标
	 * @param reportId
	 * @return
	 */
	public List<TargetsOfImplPhaseEntity> retrieveTargetsPhaseByReportIdForDefault(
			String reportId);
	
	/**
	 * 根据组织id查出对应省局的申报信息id
	 * @return
	 */
	public List<String> retrieveReportIdByOrgId(String orgId);
}
